package com.smart.ssm.controller;

import com.smart.ssm.entity.Carts;
import com.smart.ssm.reqeust.CartsReqeustParams;
import com.smart.ssm.service.CartsService;
import com.smart.ssm.utils.ResponseEntity;
import com.smart.ssm.vo.CartsVo;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * 购物车功能
 * 1.添加购物车
 * 1.1>如果购车商品已经存在  直接数量相加
 * 1.2>如果不存在就创建改条记录
 * 2.查看购物车
 * 3.删除购物车
 * 4.修改商品的数量
 * 5 加入收藏夹功能
 */
@RestController
@RequestMapping("/carts")
public class CartsController {
    @Resource
    CartsService cartsService;

    /**
     * 通过用户ID查询购物车信息
     */
    @GetMapping("/list")
    public ResponseEntity<List<CartsVo>> list(@RequestParam("userId") int userId) {
        try {
            List<CartsVo> allCarts = cartsService.findAllCarts(userId);
            return ResponseEntity.success(allCarts);
        } catch (Exception e) {
            return ResponseEntity.error();
        }
    }

    /**
     * 添加购物车
     *
     * @param cartsReqeustParams
     * @return
     */
    @PostMapping("/add")
    public ResponseEntity<Object> add(CartsReqeustParams cartsReqeustParams) {
        boolean flag = false;
        try {
            int i = cartsService.saveCarts(cartsReqeustParams);
            if (i > 0) {
                return ResponseEntity.success(true);
            } else {
                return ResponseEntity.error();
            }
        } catch (Exception e) {
            return ResponseEntity.error();
        }
    }

    /**
     * 删除购物车
     *
     * @param ids
     * @return
     */
    @PutMapping("/")
    public List<Carts> del(@RequestParam List<Integer> ids) {
        return null;
    }

    /**
     * 修改购物车的数量
     *
     * @param cartId
     * @return
     */
    @PutMapping("/")
    public List<Carts> updateNum(@RequestParam int cartId) {
        return null;
    }

}
